package com.kaizeli.website.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kaizeli.website.pojo.entity.Payment;
import com.kaizeli.website.pojo.dto.PaymentDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * 回款Mapper接口
 */
@Mapper
public interface PaymentMapper extends BaseMapper<Payment> {

    /**
     * 根据项目ID查询回款列表
     */
    List<PaymentDTO> selectByProjectId(@Param("projectId") Long projectId);

    /**
     * 根据回款状态查询回款列表
     */
    List<PaymentDTO> selectByPaymentStatus(@Param("paymentStatus") String paymentStatus);

    /**
     * 计算项目总回款金额
     */
    BigDecimal calculateTotalPayment(@Param("projectId") Long projectId);

    /**
     * 计算项目剩余待回款金额
     */
    BigDecimal calculateRemainingAmount(@Param("projectId") Long projectId);

    /**
     * 更新回款状态
     */
    int updatePaymentStatus(@Param("id") Long id, @Param("paymentStatus") String paymentStatus);
}
